package com.ufo.store.management.net;


import android.content.Context;

import com.yanzhenjie.nohttp.RequestMethod;
import com.yanzhenjie.nohttp.download.DownloadListener;
import com.yanzhenjie.nohttp.download.DownloadRequest;


/**
 * 下载管理类
 */
public class DownloadServer {
    /**
     * 单个文件下载监听的标志。
     */
    private final int WHAT_DOWNLOAD_SINGLE = 0xA2;

    /**
     * 下载请求.
     */
    private DownloadRequest mDownloadRequest;

    private static DownloadServer instance;

    public static DownloadServer getInstance() {
        if (instance == null)
            synchronized (UploadServer.class) {
                if (instance == null)
                    instance = new DownloadServer();
            }
        return instance;
    }

    /**
     * 开始下载。
     */
    public void download(Context context, String url, String fileFolder, DownloadListener listener) {
        // 开始下载了，但是任务没有完成，代表正在下载，那么暂停下载。
        if (mDownloadRequest != null && mDownloadRequest.isStarted() && !mDownloadRequest.isFinished()) {
            // 暂停下载。
            mDownloadRequest.cancel();
        } else if (mDownloadRequest == null || mDownloadRequest.isFinished()) {// 没有开始或者下载完成了，就重新下载。

            mDownloadRequest = new DownloadRequest(url, RequestMethod.GET,
                    fileFolder,
                    true, true);

            // what 区分下载。
            // downloadRequest 下载请求对象。
            // downloadListener 下载监听。
            CallServer.getInstance().download(WHAT_DOWNLOAD_SINGLE, mDownloadRequest, listener);
        }
    }
}
